iT邦幫忙

2024 iThome 鐵人賽

DAY 2
1
DevOps

時間序列資料庫探討 - Prometheus系列 第 2

Prometheus - 監控系統和時序資料庫的定位

  • 分享至 

  • xImage
  •  

本篇提問

  • 為什麼要學 PromQL?
  • Prometheus 怎麼跟其他工具互動?
  • Prometheus 在 Kubernetes 生態系中的定位是什麼?

認識 Prometheus

Prometheus 是什麼?

Prometheus 是什麼,我們先看看官網怎麼說:
https://ithelp.ithome.com.tw/upload/images/20240916/20154259yOtfW5XwEP.png

監控系統和時序資料庫。

現在多數使用場景是分散式系統,尤其是 Kubernetes。然而說到監控系統,大家可能都會想到 Grafana,而不是 Prometheus。究竟他們之間有什麼關係呢?

一般來說常見的設計類似這樣:
https://ithelp.ithome.com.tw/upload/images/20240917/20154259jvoI1CSbiq.png
當你從瀏覽器打開你的 Grafana 的監控面版。Grafana 會去看你的面版有哪些視窗、每個視窗分別要顯示什麼東西、資料來源是什麼。如果其中一個視窗設定的資料來源是 Prometheus,內容是一行 PromQL,那 Grafana Server 就會把這行 PromQL 拿去查 Prometheus。拿回一堆數據後,就會把數據畫在你的瀏覽器上。
所以說 Grafana 是一個視覺化工具,而 Prometheus 是一個資料庫。
https://www.robustperception.io/wp-content/uploads/2019/07/Screenshot_2019-07-01_13-45-18.png
*圖片來源:https://www.robustperception.io/switching-between-prometheus-servers-in-grafana-using-data-source-variables/

Prometheus 的功能

那 Prometheus 不負責畫監控面版的話,又憑什麼自稱是監控系統呢?其實它做了其他更重要的事。

  • 維護監控標的列表
  • 輪詢監控標的拉取數據
  • 維謢警報規則引擎,並發起警報

這些功能,包含資料時序資料庫檔案讀寫,都在同一個 Prometheus Server 的執行檔裡面。
可以見得 Prometheus 打從一開始就是要成為一個監控系統,時序資料庫只是監控系統的一大部份。

https://sysdig.com/wp-content/uploads/Blog-Kubernetes-Monitoring-with-Prometheus-4-Architecture-Overview.png
圖片來源:https://sysdig.com/blog/kubernetes-monitoring-prometheus/

又若 Prometheus 不用於監控,單純做為時序資料庫功能又有什麼用呢?
我從來沒有聽說過有什麼用。或許它可以用來做一些和時序有關的分析,比方說用來研究各種指標和股價的關係。但實務上它除了部署容易之外好像相對其他時序資料庫沒有什麼優勢。

提問

  • 既然 Prometheus 的實務功能那麼單一,為什麼我要花時間學 PromQL 呢?為什麼沒人做一個 SQL 轉 PromQL 的工具?
  • 市場上有的 Thanos、Mirmir、OpenTSDB、VictoriaMetrics,等等工具,號稱為了解決 Prometheus 的問題而生。它們有影響到 Prometheus 的未來性嗎?
  • 只用在 Kubernetes 上的話,現在不是有 OpenTelemetry 和 OpenMetrics 這些更大的框架嗎?為什麼大家還是都用 Prometheus?
  • 說到 Kubernetes 生態,Prometheus 可以水平擴展嗎?一般不是應該把資料儲存和其他邏輯分開成可抽換的模組嗎?為什麼 Prometheus 這麼多功能都包在一起?
  • 又如果包在一起是為了垂直整合,那為什麼不把監控面版也包進來做實體化檢視表(Materialized View)增進效能呢?

下篇會回答這些問題。


上一篇
Prometheus - 系列文計畫和測試環境架設
下一篇
Prometheus - 監控系統和它的週邊工具
系列文
時間序列資料庫探討 - Prometheus30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
雷N
iT邦研究生 1 級 ‧ 2024-09-17 00:16:24

只用在 Kubernetes 上的話,現在不是有 OpenTelemetry 和 OpenMetrics 這些更大的框架嗎?為什麼大家還是都用 Prometheus?

敲碗期待
期待這題大大怎麼說明的

我要留言

立即登入留言